package cn.fintecher.pangolin.entity.elastic;

import cn.fintecher.pangolin.common.annotation.ExcelAnno;
import cn.fintecher.pangolin.common.model.RemarkModel;
import cn.fintecher.pangolin.common.utils.Constants;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.util.Date;
import java.util.List;

/**
 * @Author : hanwannan
 * @Description : 数据修复-通讯资料
 * @Date : 2018/8/23.
 */
@Data
@Document(indexName = Constants.COMMUNICATION_DATA, type = Constants.COMMUNICATION_DATA, shards = 1, replicas = 0)
@ApiModel(value = "CommunicationData", description = "通讯资料")
public class CommunicationData {

    @Id
    @ApiModelProperty(notes = "特定字段做Md5生成")
    private String id;

    @ApiModelProperty(notes = "姓名")
    @ExcelAnno(cellName = "姓名", fieldDataType = ExcelAnno.FieldDataType.STRING)
    private String name;

    @ApiModelProperty("证件号")
    @ExcelAnno(cellName = "证件号", fieldDataType = ExcelAnno.FieldDataType.STRING)
    private String idNo;

    @ApiModelProperty("银行")
    @ExcelAnno(cellName = "银行", fieldDataType = ExcelAnno.FieldDataType.STRING)
    private String bank;

    @ApiModelProperty("申调地区")
    @ExcelAnno(cellName = "申调地区", fieldDataType = ExcelAnno.FieldDataType.STRING)
    private String applyTransferArea;

    @ApiModelProperty("座机")
    @ExcelAnno(cellName = "座机", fieldDataType = ExcelAnno.FieldDataType.STRING)
    private String landLinePhone;

    @ApiModelProperty("手机")
    @ExcelAnno(cellName = "手机", fieldDataType = ExcelAnno.FieldDataType.STRING)
    private String mobile;

    @ApiModelProperty("地址")
    @ExcelAnno(cellName = "地址", fieldDataType = ExcelAnno.FieldDataType.STRING)
    private String address;

    @ApiModelProperty("备注")
    @ExcelAnno(cellName = "备注", fieldDataType = ExcelAnno.FieldDataType.STRING)
    private String remark;

    @ApiModelProperty("类型")
    @ExcelAnno(cellName = "类型", fieldDataType = ExcelAnno.FieldDataType.STRING)
    private String type;

    @ApiModelProperty("导入日期")
    private Date importDate;

    @ApiModelProperty("操作时间")
    private Date operatorTime;

    @ApiModelProperty("批次号")
    private String batchNumber;

    @ApiModelProperty("不匹配信息")
    @Field(type = FieldType.Object)
    private List<RemarkModel> remarkMap;
}
